Looking for international version of our service? Go to 2captcha.com

Логотип «RuCaptcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Как обойти 2chan капчу

Катя Пушкаренва

Технический специалист

Введение

Это руководство для разработчиков, которые сталкиваются с текстовой капчей на 4chan и хотят автоматизировать её решение через API RuCaptcha.

Мы разберём, как получить изображение капчи, отправить его на распознавание, получить ответ и подставить результат в форму. Всё с готовыми примерами кода и пояснениями.

Что понадобится:

  • Аккаунт RuCaptcha с доступом к API
  • Баланс для оплаты решений
  • Любая среда для кода: терминал с Python или Node.js, браузер с консолью

1. Текстовая капча на 4chan: как это работает

1.1. Когда появляется текстовая капча

На некоторых досках 4chan, особенно при использовании Tor или VPN, вместо пазл-слайдера показывается классическая капча с искажённым текстом. Это изображение с набором символов, которые нужно ввести в поле формы.

1.2. Поддержка через API RuCaptcha

Этот тип капчи полностью поддерживается методом ImageToTextTask. API принимает изображение в двух форматах:

Формат Пример Когда использовать
Чистая base64-строка iVBORw0KGgoAAAANSUhEUg... Если извлекаешь данные вручную
Data URI data:image/png;base64,iVBORw0KGgoAAAANSUhEUg... Если берёшь src из тега img

Можно использовать любой вариант, результат будет одинаковым.

1.3. Ограничения метода

  • Размер изображения не больше 100 кБ
  • Ширина и высота не больше 1000 пикселей
  • Поддерживаются латинские символы и цифры
  • Время решения обычно 5,15 секунд

2. Пошаговая настройка

2.1. Шаг 1: получить изображение капчи

Найди в коде страницы элемент с картинкой капчи:

html Copy
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..." />

Извлеки значение атрибута src:

js Copy
const captchaData = document.querySelector('img.captcha').src; // полный data URI

💡 Совет: если в src только путь к файлу, а не data URI, сделай запрос к этому пути и конвертируй ответ в base64.

2.2. Шаг 2: отправить задачу в API

Создай задачу типа ImageToTextTask:

http Copy
POST https://api.rucaptcha.com/createTask
Content-Type: application/json
json Copy
{
  "clientKey": "ВАШ_API_КЛЮЧ",
  "task": {
    "type": "ImageToTextTask",
    "body": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...",
    "phrase": false,
    "case": false,
    "numeric": 0,
    "math": false,
    "minLength": 4,
    "maxLength": 6
  },
  "languagePool": "en"
}

📌 Параметры задачи:

  • phrase: ставь true, если капча содержит несколько слов
  • case: ставь true, если важен регистр символов
  • numeric: 0,1 или 2, если капча содержит только цифры
  • math: ставь true, если нужно решить пример
  • minLength и maxLength: задай ожидаемую длину ответа

2.3. Шаг 3: получить результат

Сохрани taskId из ответа и начни опрашивать статус:

http Copy
POST https://api.rucaptcha.com/getTaskResult
json Copy
{
  "clientKey": "ВАШ_API_КЛЮЧ",
  "taskId": "ID_ЗАДАЧИ"
}

Подожди 5 секунд после создания задачи, затем опрашивай каждые 3 секунды до статуса ready.

Пример успешного ответа:

json Copy
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "text": "K7aQ9"
  }
}

2.4. Шаг 4: вставить ответ в форму

Заполни поле капчи на странице 4chan:

js Copy
document.querySelector('input[name="captcha_response"]').value = "K7aQ9";

После этого отправь форму как обычно.

2.5. Шаг 5: сообщить об ошибке

Если результат распознан неверно, отправь жалобу:

http Copy
POST https://api.rucaptcha.com/reportIncorrectResult
json Copy
{
  "clientKey": "ВАШ_API_КЛЮЧ",
  "taskId": "ID_ЗАДАЧИ"
}

Это поможет улучшить качество решений в будущем.


3. Готовые примеры для теста

3.1. JavaScript: полный цикл в браузере

js Copy
// Шаг 1: получить изображение
const captchaData = document.querySelector('img.captcha').src;

// Шаг 2: создать задачу
const createResponse = await fetch('https://api.rucaptcha.com/createTask', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    clientKey: 'ВАШ_API_КЛЮЧ',
    task: {
      type: 'ImageToTextTask',
      body: captchaData,
      phrase: false,
      case: false,
      numeric: 0,
      math: false,
      minLength: 4,
      maxLength: 6
    },
    languagePool: 'en'
  })
});
const { taskId } = await createResponse.json();

// Шаг 3: опрос результата
let solution;
while (true) {
  await new Promise(r => setTimeout(r, 3000));
  const resultResponse = await fetch('https://api.rucaptcha.com/getTaskResult', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      clientKey: 'ВАШ_API_КЛЮЧ',
      taskId
    })
  });
  const result = await resultResponse.json();
  if (result.status === 'ready') {
    solution = result.solution.text;
    break;
  }
}

// Шаг 4: вставить в форму
document.querySelector('input[name="captcha_response"]').value = solution;

Как использовать:

  1. Замени ВАШ_API_КЛЮЧ на реальный ключ из панели RuCaptcha
  2. Запусти код в консоли браузера на странице с капчей
  3. Дождись заполнения поля и отправь форму вручную

3.2. Что проверяют эти примеры

  • Корректный формат отправки изображения
  • Успешное создание задачи и получение taskId
  • Стабильный опрос результата до готовности
  • Правильная подстановка ответа в целевую форму

Если поле заполнилось верным текстом, интеграция работает.


4. Заметки по примерам

Формат изображения:

  • API принимает и чистый base64, и data URI
  • Префикс data:image/png;base64, можно оставить, он не мешает

Параметры задачи:

  • minLength и maxLength помогают сузить варианты ответа
  • Для 4chan обычно достаточно 4,6 символов

Время опроса:

  • Первый запрос к getTaskResult делай через 5 секунд
  • Далее опрашивай каждые 3 секунды
  • Среднее время решения: 5,15 секунд

Обработка ошибок:

  • Всегда проверяй поле errorId в ответах API
  • При errorId > 0 читай сообщение в поле errorDescription

5. Частые ошибки и решения

Ошибка Вероятная причина Решение
errorId: 10 Неверный clientKey Проверь ключ в панели RuCaptcha
errorId: 11 Пустое или невалидное изображение Убедись, что base64-строка полная и без обрезки
errorId: 12 Превышен лимит размера Сожми изображение или обрежь до 1000px
Таймаут опроса Слишком частые запросы к getTaskResult Делай паузу 3 секунды между опросами
Неверный текст в ответе Сложное изображение или шум Попробуй отправить жалобу и повторить запрос

6. Дополнительные ресурсы

  • Документация API: rucaptcha.com/api-docs/normal-captcha
    Описание метода ImageToTextTask, параметры и примеры

  • Панель управления: rucaptcha.com/dashboard
    Статистика запросов, баланс, история задач

  • Поддержка: rucaptcha.com/support
    Ответы на частые вопросы и форма обращения


7. Чек-лист перед запуском

  • Изображение капчи извлечено в формате base64 или data URI
  • Размер изображения не превышает 100 кБ и 1000 пикселей
  • Параметры задачи (minLength, maxLength) соответствуют ожидаемому ответу
  • clientKey скопирован без ошибок и лишних пробелов
  • Реализован опрос результата с паузой 3 секунды
  • Ответ подставляется в поле captcha_response перед отправкой формы
  • Добавлена обработка ошибок API и жалоб на неверные решения

Итоги

Автоматизация текстовой капчи на 4chan через RuCaptcha требует внимания к трём моментам: правильный формат изображения, точные параметры задачи и стабильный опрос результата.

Ключевые советы:

  • Бери изображение напрямую из тега img, не пытайся скачать и перекодировать без нужды
  • Задавай minLength и maxLength, это ускоряет решение и повышает точность
  • Делай паузу перед первым опросом результата, чтобы не тратить запросы впустую
  • Отправляй жалобу, если ответ не подошёл, это улучшает сервис для всех

Следуй этим шагам, и решение капчи станет надёжной частью твоего скрипта.

Нужна версия под Puppeteer, Python или userscript, напиши, подготовлю.